/* Nama File : segitiga.h                           */
/* Deskripsi : File header dari class Segitiga      */
/* Anggota Kelompok : Dekha Anggareska 13510050		*/
/*                    Fadhil Muhtadin 13510070		*/
/*                    Muhammad Iqbal 13510064		*/
/*                    Yulius Nainggolan 13510090	*/

#ifndef segitiga_h
#define segitiga_h

#include "../../bidang/bidang/bidang.h"
#include <iostream>
using namespace std;

class Segitiga : public Bidang {
	/* Empat Sekawan */
	public:
	Segitiga();
	/* Konstruktor Segitiga */
	/* I.S. Segitiga belum tercipta */
	/* F.S. Segitiga tercipta */
	Segitiga(Cell, Cell, Cell);
	/* Konstruktor Segitiga dengan parameter */
	/* I.S. Segitiga belum tercipta */
	/* F.S. Segitiga tercipta */
	Segitiga(const Segitiga&);
	/* CCtor Segitiga */
	/* I.S. Segitiga terdefinisi */
	/* F.S. Segitiga baru tercipta sebagai kopi Segitiga sebelumnya */
	~Segitiga();
	/* Destruktor Segitiga */
	/* I.S. Segitiga terdefinisi */
	/* F.S. Segitiga dimusnahkan */
    Segitiga& operator=(const Segitiga&);
	/* operator assignment Segitiga */
	/* I.S. Segitiga input terdefinisi */
	/* F.S. Segitiga output sama dengan input dengan alokasi memori tersendiri */
	
	/* Getter dan Setter */
	
	Cell getC1() const;
	/* Mengembalikan cell pertama segitiga */
    void setC1(Cell);
	/* Mengeset cell pertama segitiga */
	/* I.S. Segitiga terdefinisi */
	/* F.S. C1 sama dengan Cell input */
	Cell getC2() const;
	/* Mengembalikan cell kedua segitiga */
    void setC2(Cell);
	/* Mengeset cell kedua segitiga */
	/* I.S. Segitiga terdefinisi */
	/* F.S. C2 sama dengan Cell input */
	Cell getC3() const;
	/* Mengembalikan cell ketiga segitiga */
    void setC3(Cell);
	/* Mengeset cell ketiga segitiga */
	/* I.S. Segitiga terdefinisi */
	/* F.S. C3 sama dengan Cell input */

	void setCorner(int, Cell);
	/* Mengeset cell titik sudut dengan cell input, HANYA UNTUK POLYGON */
	/* I.S. Segitiga terdefinisi */
	/* F.S. Sama dengan I.S. */
	
	/* Method Lain */
	int isPointInside(Cell);
	/* Mengembalikan 1 bila Cell input berada dalam Segitiga, 0 bila tidak */
	
	//data member
	private:
	Cell C1;
	Cell C2;
	Cell C3;
};
#endif
